x86/mmcfg: misc adjustments
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 7 Sep 2009 07:44:00 +0000 (08:44 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 7 Sep 2009 07:44:00 +0000 (08:44 +0100)
commit1589882b8b25246268332a58135a2e66e20d63e2
treed56e2290076d7a4d3b75f44f27e138c0f06bfd84
parent8a4bbcadab1800dd542970ff3f18b1062e8e5716
x86/mmcfg: misc adjustments

- fix the mapping range (end_bus_number is inclusive)
- fix the mapping base address (shifting segment by 22 was set for
  overlapping mappings; assuming the goal was to reduce the virtual
  space used when less than 256 busses are present on all segments,
  adding logic to determine the smallest possible shift value)
- fix PCI_MCFG_VIRT_END, and actually use it to avoid creating
- mappings
  outside the designated range
- fix address calculations (segment numbers must be converted to long
  to avoid truncation)
- add a way (command line option) to suppress the use of mmconfig as
  well as to actually use the AMD Fam10 special code
- correct __init annotations
- use xmalloc()/xmalloc_array() in favor of xmalloc_bytes()
- eliminate dead code and data

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/x86_64/acpi_mmcfg.c
xen/arch/x86/x86_64/mmconfig-shared.c
xen/arch/x86/x86_64/mmconfig.h
xen/arch/x86/x86_64/mmconfig_64.c
xen/include/asm-x86/config.h